package cn.iocoder.yudao.module.lfd.controller.admin.appointment.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
* 预约 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class AppointmentBaseVO {

    @Schema(description = "openid", example = "32597")
    private String openid;

    @Schema(description = "流水号")
    private String flowNo;

    @Schema(description = "店铺id", required = true, example = "7484")
    private Long shopId;

    @Schema(description = "状态", required = true, example = "2")
    private AppointmentEnum status;

    @Schema(description = "理发师id", required = true, example = "10578")
    private Long barberId;

    @Schema(description = "等待时间")
    private Long costTime;

    @Schema(description = "等待人数", example = "29807")
    private Long waitCount;

    @Schema(description = "金额", required = true)
    private BigDecimal money;

    @Schema(description = "开始理发的时间", required = true)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime startHairTime;

    @Schema(description = "理发日", required = true)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate hairDate;
    @Schema(description = "编号", required = true)
    private String number;
    @Schema(description = "理发师")
    private String barberName;

    private PayTypeEnum payType;
}
